Systems and methods for color managing content elements on a display device

ABSTRACT

A system and method for color managing content elements on a display device are provided. The systems and methods for color managing content elements on a display device comprising using a set of color space characteristic values that describe a color space of the display device to create a profile having a multidimensional table encapsulating the display behavior as described by color space characteristic values for the display device.

LIMITED COPYRIGHT WAIVER

A portion of the disclosure of this patent document contains material towhich the claim of copyright protection is made. The copyright owner hasno objection to the facsimile reproduction by any person of the patentdocument or the patent disclosure, as it appears in the U.S. Patent andTrademark Office file or records, but reserves all other rightswhatsoever.

TECHNICAL FIELD

Embodiments of the present invention relate generally to displaydevices, and more particularly to color managing content elements ondisplay devices.

BACKGROUND

Color has the ability to communicate, to please, to excite, and toengage. For example, color makes a difference—often a dramaticdifference—in photographs, graphics, layouts and the like. Getting colorright early in a workflow, and keeping it right to the end, isincreasingly critical in our fast-paced, deadline-driven digital world.

For each device in the workflow, the same combination of numerical colorvalues will yield a different color. For example, a single pixel whereR=128, G=128 and B=128 should produce a completely neutral gray tone. Onsome display devices, this gray will look warm, or reddish. On otherdevices it will look cool or bluish. These inherent disparities make itdifficult to render the colors of an image on differing devices withconsistency, accuracy and predictability. Additionally, they make itdifficult to render colors of an image on a single display device overtime as that display device changes over time. Furthermore, in somecases the content being displayed encompasses a set of colors beyondwhich the display can represent accurately. In these cases, it isimportant that the out-of-gamut colors be represented as faithfully aspossible on the display.

Photographers, designers and more increasingly, everyday users, arefrequently dismayed when they print an image and the color is wildlycontrary to what was displayed on their computer screen. Thesedisruptive surprises cost time and money and increase user frustration.

SUMMARY

Systems and methods for color managing content elements on displaydevices are provided. Color management profiles are created for displaydevices using color space characteristic values of the display device.The profile comprises multi-dimensional tables encapsulating thebehavior of the display device with relation to color spacecharacteristic values. In some embodiments, the display profile containsmultiple dimensional tables that are optimized for different userenvironments, such as optimizing for saturation, relative calorimetricvalues, or perceptual display. In some embodiments, the tables arecompliant with ICC Profile Specification Version 2 or 4. By usingmulti-dimensional tables that encapsulate the display behavior in adisplay profile, a color management system can more accurately andconsistently perform color transformations, including in andout-of-gamut mapping.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a hardware configuration according to anembodiment of the present invention.

FIG. 2A is a block diagram of a color management system according to anembodiment of the present invention.

FIG. 2B is a functional block diagram of a color management systemaccording to an embodiment of the present invention.

FIG. 3 is a diagram of a system for the implementing color managementaccording to an embodiment of the present invention.

FIG. 4A is a method of building a color management profile for a displaydevice according to an embodiment of the present invention.

FIG. 4B is a method of building a color management profile for a displaydevice according to an embodiment of the present invention.

FIG. 5 is a method of displaying color-managed content on a displaydevice according to an embodiment of the present invention.

FIG. 6 is a method of color managing a display device according to anembodiment of the present invention.

DETAILED DESCRIPTION

The following is a detailed description of some exemplary embodiments ofthe invention(s) contained within the disclosed subject matter. Suchinvention(s) may be referred to, individually and/or collectively,herein by the term “invention” merely for convenience and withoutintending to voluntarily limit the scope of this application to anysingle invention or inventive concept if more than one is in factdisclosed. In the detailed description, reference is made to theaccompanying drawings that form a part hereof, and in which are shown byway of illustration, but not of limitation, some specific embodiments ofthe invention, including a preferred embodiment. These embodiments aredescribed in sufficient detail to enable those of ordinary skill in theart to understand and implement the inventive subject matter. It is tobe understood that other embodiments may be utilized and that changesmay be made without departing from the scope of the inventive subjectmatter.

This description of the embodiments is divided into three sections. Inthe first section, a system level overview is presented. In the secondsection, methods for using example embodiments are described. In thethird section, an example implementation is described.

System Level Overview. FIG. 1 is a simple hardware system diagramshowing a computing device 105 and a display device 110. The computingdevice 105 sends images to be displayed on the display device 110 andreceives image data from the display device 110. Images stored on thecomputing device 105 are acquired from a variety of other acquisitiondevices and are displayed on the display device 110 using the systemsand methods for color managing content elements according to exampleembodiments of the invention.

A user of the hardware system depicted in FIG. 1 expects the colors thatthey perceive on their acquisition device to match the color they see onthe display device 110. To accomplish this color matching, the computingdevice 105 transforms content from a device-independent color space orProfile Connection Space (PCS) to a device-dependent color space of thedisplay device 110 by using a profile for the display device 110. Insome embodiments, the profile comprises a multidimensional tableencapsulating the display behavior.

The computing device 105 uses a set of color space characteristic valuesthat describe a color space of the display device 110 to create theprofile. In one embodiment, the color space characteristic values usedto create the profile comprise chromaticity values and gamma values forthe display device 110. Chromaticity values are representations of theRed, Green, and Blue (RGB) primaries of a display in a PCS coordinatesystem. Gamma values provide an approximate function that describes theoutput response of each of the RGB phosphors.

The chromaticity values and gamma values only describe therepresentation of in-gamut colors on the display device 110. However,the profile further describes out-of-gamut optimizations. Each displaydevice 110 has a range of realizable colors that it can displayproperly. Colors that are outside of this range, or gamut, must bemapped to in-gamut values such that the color value can be displayed onthe device. Embodiments of the invention are not limited to anyparticular method for mapping out-of-gamut values to in-gamut values.Methods of mapping out-of-gamut colors—involve optimizing thepreservation of hue, saturation, or luminance when moving the color fromout-of-gamut to in-gamut. In some embodiments, the preservation of hueis a primary consideration with saturation and luminance being asecondary consideration in the mapping of out-of-gamut colors. However,any methods for handling out-of-gamut colors may be used with theprofile.

The computing device 105 automatically generates the profile for thedisplay device 110 using the color space characteristic values for thedisplay device 110. In one embodiment, when the display device 110 isconnected to the computing device 105, the computing device 105 queriesthe display device 110 for a set of data that describes itscharacteristic color space. The computing device 105 then creates andstores a profile using the set of color space characteristic values forthe display device 110. This process is referred to as calibrating adisplay.

In an embodiment, any event that triggers a calibration is are-calibration event. Re-calibration events include, without limitation,first starting a computing device 105, connecting a new display device110 to the computing device 105, rebooting of a computing device 105,and a user-initiated session to further define the profile of thedisplay device 110.

FIG. 2A is a block diagram describing a system according to anembodiment of the present invention. The system shown in FIG. 2Acomprises a computing device 105 connected to a display device 110. Thecomputing device 105 includes a Color Management System 250 and storedprofiles 255.

The Color Management System (also referred to herein as “CMS”) 250performs color transformations by connecting a source color space to adestination color space through the PCS. For example, the CMS 250performs a transformation from the color space of a scanner device tothe color space of the display device through the PCS.

The stored profiles 255 provide the color management system shown inFIG. 2A with the information used to convert color data between nativedevice color spaces and device-independent color spaces. For convertingfrom device-independent color spaces to native device color spaces, oneor more of the stored profiles has a multidimensional tableencapsulating the display behavior as described by the color spacecharacteristic values of the display device 110. This includes bothin-gamut mapping and out-of-gamut mapping optimizations.

In one embodiment, the stored profiles 255 conform to the InternationalColor Consortium (ICC) profile specification and the multi-dimensionaltable is a data structure referred to in the ICC Specification as a“BtoA tag.” ICC profiles are a cross platform file format that definesthe data required for calculating a color match between devices orbetween working color spaces. Each ICC profile can containdevice-dependent data (i.e. unique combinations of RGB values) ordevice-independent data. The device-independent data may also be calledthe Profile Connection Space (also referred to here in as “PCS”). In anembodiment, ICC profile includes an ICC profile compliant with ICCVersion 2 which may contain 8 bit (mft1) and 16 bit (mft2) information.In a further embodiment, ICC profile includes an ICC profile compliantwith ICC Version 4 which may contain a 16 bit (mba) information.However, embodiments of the invention are not limited to the ICC profilespecification. Any file or data structure for color management isconsidered within the scope of the term profile.

FIG. 2B is a functional block diagram describing in more detail thecolor management system described with respect to FIG. 2A. The CMS 250has instructions contained therein to perform both a Device-to-PCStransform 251 and a PCS-to-Device transform 252. The stored profilesinclude both Device-to-PCS 256 and PCS-to-Device 257 tables that can bereferenced by the CMS 250.

In an embodiment, every item that is acquired is transformed by the CMS250 using a Device-to-PCS 251 transform referencing the profile of theacquisition device which is stored in the stored profiles 255 containedon the computing device 105. Each of these profiles contains appropriatetables for the actions that can be performed by the acquisition device.With respect to a scanner 260 only information to properly transform thecolor characteristics of acquired items from the scanner-dependent colorspace to a device-independent color space or PCS 253 needs to bemaintained. With respect to a display device 110, items may be bothinput from and output to them. A user may modify an item on screen andgiven the color space characteristic values of the display device 110,the CMS 250 can perform a Device-to-PCS transform 251 on the item toarrive at the device-independent PCS 253. In displaying an item on thedisplay device 110, the CMS 250 performs a PCS-to-Device transform 252to transform the color space of the item from the PCS 253 to that of thedisplay device 110. In order to perform these transforms, the CMS 250can reference both the Device-to-PCS tables 256 and the PCS-to-Devicetables 257 contained in the profile associated with the display device110.

It is to be understood that though the simple term “acquiring an item”from the display device 110 is used, the actual input of an image on adisplay device 110 can be more complex. During display and modification,the PCS-to-Device Transform 252 must transform every piece of colorinformation. The user on altering the image by use of any input deviceis changing the display of the image. The user's input must betransformed using the Device-to-PCS transform 251 taking into accounthow the user wants the item displayed and the display characteristics ofthe display device 110.

In operation, the system shown in FIG. 2B automatically generates adefault profile for a display device 110 using a set of color spacecharacteristic values for the display device 110. The default profilehaving a multidimensional table encapsulating the display behavior (suchas a BtoA tag) provides improved color accuracy including better mappingof out-of-gamut colors into the display device's color space. In oneembodiment, a BtoA tag contains a three-dimensional lookup table to mapPCS values to display device RGB values. The tag is generatedalgorithmically based upon standard display color space characteristicvalues. For out-of-gamut PCS values, the three-dimensional lookup tablecontains device RGB values that best preserve the color's hue,saturation, and luminance.

In contrast to the improved system shown in FIG. 2B, existing colormanagement systems generate a simple profile for a display device suchas a matrix profile as defined by the ICC specification. In general, thematrix profile is simple, creates a smaller profile and provides fasterprocessing. Also, matrix profiles include values that closely correspondto the color space characteristic values obtained from the displaydevice and little additional processing is required to generate thematrix profile. That is because the values received from the device arethe same values used in the matrix profiles. No additional processing isdone to create out-of-gamut mapping optimizations. Thus, there is littleflexibility with matrix profiles to handle out-of-gamut mapping. Inpart, this is because when using a matrix profile to convertdevice-independent colors to device RGB, the ICC profile specificationdefines that if the source color lies outside the gamut of thedestination, the result is clipped in a simple fashion to yield in-gamutdevice values. Compared to matrix profiles, the multidimensional tableprofiles (such as profiles using BtoA tags) can result in very largeprofiles in some embodiments of the invention. Profiles that containBtoA tags can be several hundred kilobytes to over a megabyte. However,the multidimensional table profiles are more flexible and can model anydevice to a certain amount of high accuracy (including mapping out-ofgamut values to in-gamut values) depending on the algorithms used.

FIG. 3 is a diagram of a system for implementing the system of colormanagement described above with respect to FIG. 2A and FIG. 2B. Thecomputing device 105 further comprises a storage device 360 and aprocessor device 380. The processor device 380 executes instructionsstored on the storage device 360, such as instructions for an operatingsystem 365. In an alternate embodiment, the processor device 380 is agraphics processor for executing graphics instructions and mayoptionally be integrated with a video card. In an embodiment, theoperating system 365 includes a Calibration Software Module 367. Inanother embodiment, the Calibration Software Module 367 is a ColorManagement System as contemplated by the ICC Specification. The storagedevice 360 contains stored profiles 370 for input and output devices.The stored profiles 370 may either be a factory profile 372 or auser-defined profile 374. A factory profile 372 is a device manufacturesupplied profile for that device. By studying the average devicebehavior of a number of manufactured devices the manufacturer can createa factory profile 372 for the device. User-defined profiles 374 areprofiles that have been designed by either querying the user as to theinput or output of items with respect to the user's expectations. In anembodiment, user-defined profiles 374 further include any modificationof the factory profile 372, whether the modification is user-initiatedor not.

In addition to a Calibration Software Module 367 contained in theOperating System 365 instructions, the storage device may contain othercalibration software modules, referred to as 3^(rd) Party CalibrationModules 377, either pre-installed on the storage device or installed onthe storage device after delivery to a user. 3^(rd) Party CalibrationModules 377 can perform substantially the same functions as theCalibration Software Module 367 or some sub-set of functionality. Forexample, a 3^(rd) Party Calibration Module 377 may perform calibrationfunctionality only with respect to a specific hardware device connectedto the computing device 105. Though the 3^(rd) Party Calibration Module377 is depicted as a software module on the storage device, it is to beunderstood that such module may be hardware based and connected to thecomputing device 105 totally separate from the storage device. In suchan example, the hardware based 3^(rd) Party Calibration Module 377 mayitself contain instructions for performing calibration instructions.

In an embodiment, the processor device 380 and the storage device 360are in the same physical enclosure as the display device 110. Such anarrangement may be called an all-in-one unit. Other realizations of suchan arrangement include, without limitation, laptop computers, cellulartelephones, portable audio players and personal digital assistants(PDA's). In an alternate embodiment, the display device 110 is enclosedseparately from the computing device 110. This is a traditional desktopcomputer arrangement where the display is separate from the computeritself. It also includes any other arrangement where the computingdevice 105 is physically separate, though connected by a cable, from thedisplay device 110. Such arrangements include, without limitation,traditional desktop computers (including desktop computers provideoutput to a television as a second or alternate display) and set-topboxes connected to televisions.

Methods. In this section, particular methods of example embodiments aredescribed by reference to a series of flow charts. The methods to beperformed constitute computer programs made up of computer-executableinstructions. FIGS. 4A TO 6 describe methods for building a deviceprofile according to some example embodiments.

FIG. 4A to FIG. 6 present methods of using the systems described abovewith respect to FIG. 1 to FIG. 3 according to embodiments of the presentinvention.

FIG. 4A depicts a method of building a profile for a display device 110according to an embodiment of the present invention. At 405 thecomputing device 105 detects some re-calibration event. Re-calibrationevents include, without limitation, first starting the computing device105, powering on the display device 110, re-starting the computingdevice 105 and user-initiated calibration sessions.

At 410 the computing device 105 queries the display for a set of datadefining the color space characteristics of that display device 110. Inan embodiment, the display device 110 communicates Extended DisplayInformation Data (EDID) to the computing device 105. In anotherembodiment, the display device 110 communicates a set of data definingthe color space characteristics of that display device 110 over anysuitable communications protocol. Suitable communications protocolsinclude, without limitation, Universal Serial Bus (USB), Digital VideoInterface (DVI) and Apple Display Connector (ADC). In an alternateembodiment, the color space characteristics of a display device 110 areobtained from a factory profile (or any other matrix profile) previouslystored on the storage device of the computing device 105 rather thanfrom the display device 110 itself. In another embodiment, queryingfurther comprises receiving user input as to the display behavior of thedisplay device 110 such that the information contains user-preferredcharacteristics.

At 415 the computing device 105 receives the values from the displaydevice 110. In an embodiment, the values received from the displaydevice 110 are in matrix format and contain minimal data. In anotherembodiment, receiving further comprises receiving input from a user asto the perceived display behavior of the display device 110.

At 420 the computing device 105 builds a profile based on the valuesreceived from the display device 110 or from a user. In an embodiment,at 420 the computing device 105 builds a profile based on the valuesreceived from the display device 110 after the computing device 105first converts the matrix based data to a multi-dimensional table. In analternate embodiment, the computing device 105 stores only those valuesand does not store a profile for the display device 110. In yet anotherembodiment, the computing device 105 stores those values in theappropriate display device profile and converts them to amulti-dimensional table upon every display event. In still anotherembodiment, the computing device 105 builds the profile by augmenting anexisting matrix profile to include mappings for out-of-gamut colors toin-gamut colors.

Use of a multi-dimensional table may be computationally costly and itmay be advantageous to use the simpler matrix-based profile in somesituations. In an embodiment, the computing device 105 builds a profilethat is based on the capabilities of the system or the content to bedisplayed. A determination as to the capabilities of the system could bebased on any of the following, without limitation, CPU speed, CPU type,presence of a video card, suitability of the video card, amount ofmemory, amount of video memory and the storage space available on thestorage device. A determination based on the content to be displayedcould be based on any of the following, without limitation, out-of-gamutvalues in the content and out-of-gamut values in the source profile. Ina further embodiment, matrix-based information and multi-dimensionalbased information on the display characteristics of a display device arestored in a single display profile. In such an embodiment, the computingdevice 105 determines at the time of a display event whether to use thematrix-based profile information or the multi-dimensional profileinformation to transform from PCS to the device-dependent colorcharacteristic values of the display device 110 based on either thesystem capabilities or the content to be displayed.

FIG. 4B depicts a method of building a profile for a display device 110according to an embodiment of the present invention. At 405 thecomputing device 105 detects some re-calibration event, as describedabove with respect to FIG. 4A. At 411 the computing device 105 queriesthe display device 110. In an embodiment, the display device 110includes all connected display device 110 s 407, such as might bequeried when the computing device 105 is first started. In anembodiment, the display device 110 includes a display device 110identified by a user, such as when a user has initiated a calibrationsession. At 416 the computing device 105 receives color spacecharacteristic values from the at least one display device 110. In anembodiment, the received color space characteristic values are in amatrix-based format containing minimal information.

At 421 at least one BtoA tag is built using the received color spacecharacteristic values. In an embodiment, the BtoA tag is built byconverting the matrix based color space characteristic values to amulti-dimensional table. In an embodiment building a BtoA tag comprisesbuilding a BtoA0 tag 422, building a BtoA1 tag and building a BtoA2 tag.BtoA0 tags are tags that optimize color management for a perceptualrendering intent. BtoA1 tags are tags that optimize color management forout-of-gamut colors of the display device 110, or relative calorimetricintent. BtoA2 tags are tags that optimize color management in order tomaximize saturation intent. In an alternate embodiment, only one BtoAxtag is built, wherein the letter x is used to denote either 0, 1 or 2.In an embodiment, at 425 the tag is saved in the profile associated withthe display device 110. In an alternate embodiment, at 425 the tag issaved on the storage device 340 and a profile is created wheneverneeded. In a further embodiment, the received color space characteristicvalues are saved to the storage device and the at least one BtoAx tag iscreated whenever needed.

FIG. 5 is a method of displaying color-managed content on a displaydevice 110 according to another embodiment of the present invention. At505 a computing device 105 detects a command to display some contentelement. At 510, the computing device 105, using a CMS 250, retrievescolor space characteristic values for the display device. In analternate embodiment, the color space characteristic values are obtainedfrom an existing matrix profile for the display device rather than byquerying the device after detection of a command to display content. Instill another embodiment, the color space characteristic values areobtained from a database or other local storage. In yet anotherembodiment, the color space characteristic values are downloaded from aremote server such as a server on an Intranet or Internet. At 515, theCMS 250 builds a display profile using the color space characteristicvalues wherein the display profile contains a multi-dimensional tableencapsulating the display device's behavior. In an embodiment, themulti-dimensional table is an ICC compliant BtoA tag. In an embodiment,the multi-dimensional table is an ICC compliant BtoAx tag, wherein theletter x is used to denote either 0, 1 or 2. In one embodiment, hisdisplay profile is built upon every display event. In a furtherembodiment, the display profile is created periodically separate fromdisplay events. At 520 the CMS 250 references the just built displayprofile and transforms the color values for the content element usingthe display profile at 525. At 530 the computing device 105 displays thenow transformed content element on the display device 110.

FIG. 6 depicts a method for color managing a display device 110according to an embodiment of the present invention. FIG. 6 incorporatesthe building of a color management profile as depicted in FIGS. 6A and6B and the displaying of color-managed content depicted in FIGS. 5A and5B. At 405 the computing device 105 detects a re-calibration event suchas those described above with respect to FIG. 6A. At 411 the computingdevice 105 queries the display device 110 for a set of data, such ascolor space characteristic values. The devices queried may be the allthe connected devices 407 or a user-identified device 608. At 416 thecomputing device 105 receives color space characteristic values from thedisplay device 110. Based on the received values, the computing device105 can build a number for BtoA tags at 421. Each BtoA tag is optimizedfor a different type of color management intent, as described above withrespect to FIG. 6B. At 425 the number of BtoA tags are saved. In anembodiment, the number of BtoA tags are saved within a profileassociated with that device. In an embodiment, the number of BtoA tagsare saved separately and a profile created whenever needed. In a furtherembodiment, the received color space characteristic values are saveddirectly to the associated profile and BtoA tags are built wheneverneeded.

Following the creation or modification of the profile for the displaydevice 110, the computing device 105 waits for some content displayevent at 650. Upon detecting a content display event at 650 thecomputing device 105 determines the user environment at 655. In anembodiment, the user environment includes environments where the displayof content elements can be differently color managed based on thatenvironment. In an embodiment, the user environment may be defined aswhether the user is home or at work, whether their laptop is running ona charger or on the battery. In another embodiment, environmentalsensors connected to the computing device 105 define the userenvironment. At 660 the computing device 105 references a tag containedin the profile for the display device 110 that is associated with theuser environment the computing device 105 is currently in. At 665 thecomputing device 105 transforms the content's color values with thatproper tag to color manage the content on the display device 110. At 520the content is displayed on the display device 110 and the systemreturns to 650 to wait for the detection of further content displayevents.

These methods and systems are general examples of carrying outembodiments of the present invention. In the next section, an exemplaryimplementation of the methods and systems described above will bepresented.

Example Implementations. On an operating system such as Apple's Mac OSX, color management is an important module in providing consistent colorto the end user. Described above were methods and systems of colormanaging content. In this section, an implementation of such methods andsystems will be discussed with relation to Mac OS X and its CalibrationSoftware Module, ColorSync.

When a display is connected to a computer running Mac OS X, itcommunicates industry standard Extended Display Identification Data(EDID) to Mac OS X. In alternative embodiments, any suitablecommunications protocol can be used to communicate data from the displayto a computer running Mac OS X. This data is matrix-based data andcontains no more then 9 values to define its color characteristic space.Color Sync running on Mac OS X automatically creates a profile thatreflects how the display shipped from the factory based on that data. Inan embodiment, ColorSync takes this matrix-based data and converts it toa multi-dimensional table containing much more information on gamutmapping optimizations and stores the multi-dimensional table in theprofile. Converting the matrix-based data to a multi-dimensional tableis computationally costly. In a further embodiment, ColorSync stores thematrix-based data and only converts it to a multi-dimensional table whena content display event occurs. A profile with the multi-dimensionaltable of a BtoA tag contained is several times larger in file size thensimple matrix based data.

Upon every content display event, ColorSync applies the profile of thedisplay device to every content item that will display on it. Thisincludes not only actual pictures, but also every piece of content thathas some color value. ColorSync transforms each of these item's colorswith that display device's profile. Without transforming each piece ofcontent, a user may see something that is supposed to be black displayin one area of their screen as perfect black, but in another area, itdisplays as a very dark grey. Given the amount of information that isconveyed to the user with the use of color, such a disparity isunacceptable.

In addition to displaying colors that are well within the gamut of adisplay device, ColorSync provides for a mapping optimization fromout-of-gamut colors to in-gamut colors. This is provided for by the useof the BtoA tags, or multi-dimensional tables. Use of just thematrix-based data provides very little guidance to the Color ManagementModule on out-of-gamut mapping optimizations. The use of a BtoA tagcontained in the device profile provides to Mac OS X, and in turn to theuser, a consistent representation of colors that they can rely on timeand again. Using a tag contained in a profile that is many times greaterthen is typically used presents an extremely large computational costwhen every item with color that is displayed on the screen must betransformed with relation to that tag.

Practically every software application running on a computing devicethat displays content elements to a display device uses color elements.With respect to Mac OS X, these software applications include, withoutlimitation, iPhoto for the display and organization of photo images,iMovie for the creation of movies, iTunes for the organization of musicfiles including representations of album cover art, Mail for thereceiving and sending of email messages which can contain color content,Safari for the retrieval and display of web pages and iChat for videoconferencing between users. Each of these software applications usescolor in significant ways. iChat for conveying the thread of aconversation visually. Mail for the highlighting of message threads.iPhoto for the displaying of photos. Proper color management of thecontent elements in these software applications ensures that the enduser is properly cued as to the operation of the application.

It is emphasized that the Abstract is provided to comply with 37 C.F.R.§ 1.72(b) requiring an Abstract that will allow the reader to quicklyascertain the nature and gist of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims.

In the foregoing Detailed Description, various features are groupedtogether in a single embodiment for the purpose of streamlining thedisclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments of the inventionrequire more features than are expressly recited in each claim. Rather,as the following claims reflect, inventive subject matter lies in lessthan all features of a single disclosed embodiment. Thus the followingclaims are hereby incorporated into the Detailed Description, with eachclaim standing on its own as a separate preferred embodiment.

It will be readily understood to those skilled in the art that variousother changes in the details, material, and arrangements of the partsand method stages which have been described and illustrated in order toexplain the nature of this invention may be made without departing fromthe principles and scope of the invention as expressed in the subjoinedclaims.

1. A method of calibrating a display device, comprising: detecting are-calibration event; in response to the re-calibration event querying adisplay device for a set of color space characteristic values thatdescribe the color space of the display device, the display devicehaving a screen to display content; receiving the set of color spacecharacteristic values from the display device; and building a profilefor the display device using the set of color space characteristics byconverting a matrix-based format of the set of color spacecharacteristics to a multidimensional table, the multidimensional tablebeing different from a matrix, the multidimensional table containingmore information on gamut mapping than the matrix-based format, whereinthe profile comprises: the multidimensional table encapsulating displaybehavior as described by the color space characteristic values, themultidimensional table including values for the display device topreserve a color's hue for out-of-gamut mapping for displaying thecontent on the screen; and out-of-gamut mapping optimizations.
 2. Themethod of claim 1, wherein the color space characteristic valuescomprises chromaticity values and gamma values.
 3. The method of claim1, wherein the building a profile includes building a profile thatconforms to the International Color Consortium (ICC) profilespecification.
 4. The method of claim 3, wherein the multi-dimensionaltable includes a BtoA tag as described by the ICC profile specification.5. The method of claim 1, wherein detecting a re-calibration eventincludes starting a computing device.
 6. The method of claim 1, whereindetecting a re-calibration event includes restarting a computing device.7. The method of claim 1, wherein detecting a re-calibration eventincludes connecting a display device to a computing device.
 8. Themethod of claim 1, wherein detecting a re-calibration event includesdetecting a user-initiated command to calibrate a display device.
 9. Themethod of claim 1, wherein querying the device includes prompting theuser for a set of inputs.
 10. A method of color managing contentelements on a display device comprising automatically creating a profileby converting a matrix-based format of a set of color spacecharacteristic values that describe a color space of the display deviceto a multidimensional table, the multidimensional table being differentfrom a matrix, the multidimensional table containing more information ongamut mapping than the matrix-based format, the display device having ascreen to display the content elements, the multidimensional tableencapsulating display behavior as described by color spacecharacteristic values for the display device in order to optimizemapping of out-of-gamut colors to in-gamut colors for displaying thecontent on the screen, the multidimensional table including values forthe display device to preserve a color's hue for out-of-gamut mapping.11. The method of claim 10, wherein the color space characteristicvalues comprises chromaticity coordinates.
 12. The method of claim 11,wherein the color space characteristic values further comprise one ormore gamma values.
 13. The method of claim 12, the profile conforms tothe International Color Consortium (ICC) profile specification.
 14. Themethod of claim 13, wherein the multi-dimensional table includes a BtoAtag as described by the ICC profile specification.
 15. A computerreadable storage medium containing instructions, which when executed bya processor device, cause operations to be performed which comprise:obtaining a set of color space characteristic values for a displaydevice, the display device having a screen to display content;automatically building a profile using the set of color spacecharacteristic values for the display device by converting amatrix-based format of the set of color space characteristics to amultidimensional table, the multidimensional table being different froma matrix, the multidimensional table containing more information ongamut mapping than the matrix-based format, wherein the profilecomprises: the multidimensional table encapsulating display behavior asdescribed by the color space characteristic values, the multidimensionaltable including values for the display device to preserve a color's huefor out-of-gamut mapping for displaying the content on the screen; andout-of-gamut mapping optimizations.
 16. The computer readable storagemedium of claim 15, wherein the color space characteristic valuescomprises chromaticity values.
 17. The computer readable storage mediumof claim 15, wherein the color space characteristic values furthercomprise one or more gamma values.
 18. The computer readable storagemedium of claim 15, wherein the profile conforms to the InternationalColor Consortium (ICC) profile specification.
 19. The computer readablestorage medium of claim 15, wherein the multi-dimensional table includesa BtoA tag as described by the ICC profile specification.
 20. A computerreadable storage medium containing instructions, which when executed bya processor device, cause operations to be performed which comprise:obtaining a set of color space characteristic values for a displaydevice, the display device having a screen to display content; andbuilding a profile using the set of color space characteristic valuesfor the display device, wherein the profile comprises a BtoA tag, theBtoA tag including a multidimensional table having values for thedisplay device to preserve a color's hue for out-of-gamut mapping fordisplaying the content on the screen, the multidimensional table beingdifferent from a matrix and being substantially larger in file size thana matrix-based format for the set of color space characteristic values,the multidimensional table containing information on gamut mapping. 21.The computer readable storage medium of claim 20, wherein the operationof obtaining a set of color space characteristic values for a displaydevice further comprises an operation of querying the display device.22. The computer readable storage medium of claim 20, wherein theoperation of obtaining a set of color space characteristic values for adisplay device further comprises an operation of accessing data on astorage device.
 23. The computer readable storage medium of claim 20,wherein the operation of obtaining a set of color space characteristicvalues for a display device further comprises an operation of accessingdata over the Internet.
 24. The computer readable storage medium ofclaim 22, wherein the operation of obtaining a set of color spacecharacteristic values for a display device further comprises anoperation of accessing the color space characteristic values from anexisting matrix profile.
 25. The computer readable storage medium ofclaim 20, wherein the operation of building the profile furthercomprises an operation of augmenting an existing matrix profile toinclude mappings of out-of gamut colors to in-gamut colors.
 26. Thecomputer readable storage medium of claim 20, wherein the operationsfurther comprise storing the profile on the storage device.
 27. Acomputer readable storage medium containing instructions, which whenexecuted by a processor device, cause operations to be performed whichcomprise: detecting a command to display content on a screen of adisplay device; retrieving a set of color space characteristic valuesassociated with the display device; building a display profile having aBtoA tag based on those color space characteristic values, the BtoA tagincluding a multidimensional table having values for the display deviceto preserve a color's hue for out-of-gamut mapping for displaying thecontent on the screen, the multidimensional table being different from amatrix and being substantially larger in file size than a matrix-basedformat for the set of color space characteristic values, themultidimensional table containing information on gamut mapping;referencing the display profile for the display device; transforming thecontent's color values with the display profile; and displaying thecontent on the display device.
 28. The computer readable storage mediumof claim 27, wherein the operation of retrieving the set of color spacecharacteristic values further comprises an operation of querying thedisplay device.
 29. The computer readable storage medium of claim 27,wherein the operation of retrieving the set of color spacecharacteristic values for a display device further comprises anoperation of accessing data on a storage device.
 30. The computerreadable storage medium of claim 27, wherein the operation of retrievingthe set of color space characteristic values for a display devicefurther comprises an operation of accessing data over the Internet. 31.The computer readable storage medium of claim 27, wherein the operationof retrieving the set of color space characteristic values for a displaydevice further comprises an operation of accessing the color spacecharacteristic values from an existing matrix profile.
 32. The computerreadable storage medium of claim 27, wherein the operations furthercomprise storing the display profile.
 33. The computer readable storagemedium of claim 32, wherein the operations further comprise using thestored display profile upon detecting subsequent commands to displaycontent.
 34. The computer readable storage medium of claim 27, whereinthe operation of transforming the content's color values with thedisplay profile includes an operation of transforming the content'scolor values from a device-independent color space to the displaydevice's color space as defined by the display profile.
 35. The computerreadable storage medium of claim 27, wherein the operation oftransforming the content's color values with the display profileincludes an operation of transforming the content's color values from aprofile connection space to the display device's color space as definedby the display profile.
 36. The computer readable storage medium ofclaim 27, wherein the operation of transforming the content's colorspace values with the display profile includes an operation oftransforming an out-of-gamut, with respect to the display device, colorspace value to an in-gamut, with respect to the display device, colorspace value.
 37. An electronic device, comprising: a processor; at leastone display device coupled to the processor for displaying informationprocessed by the processor, the display device having a screen todisplay the information; and a storage device encoded withcomputer-readable instructions, wherein the instructions when read andexecuted by the processor cause operations to be performed comprising:detecting a re-calibration event; querying the display device for a setof color space characteristic values that describe the color space ofthe display device; receiving the set of color space characteristicvalues from the device; and automatically building a profile for thedisplay device using the set of color space characteristic values byconverting a matrix-based format of the set of color spacecharacteristics to a multidimensional table, the multidimensional tablebeing different from a matrix, the multidimensional table containingmore information on gamut mapping than the matrix-based format, whereinthe profile comprises: the multidimensional table encapsulating thedisplay behavior as described by the color space characteristic values,the multidimensional table including values for the display device topreserve a color's hue for out-of-gamut mapping for displaying contenton the screen; and out-of-gamut mapping optimizations.
 38. Theelectronic device of claim 37, wherein the multi-dimensional tableincludes a BtoA tag as described by the ICC specification, version 2.39. The electronic device 38, wherein the BtoA tag includes a tag with 8bit data (mft1) and 16 bit data (mft2).
 40. The electronic device ofclaim 37, wherein the multi-dimensional table includes a BtoA tag asdescribed by the ICC specification, version
 4. 41. The electronic deviceof claim 40, wherein the BtoA tag includes a tag with a 16 bit mba tag.42. The electronic device of claim 37, wherein the color spacecharacteristic values include chromatisity and gamma values.
 43. Anelectronic device, comprising: a processor; and a storage device encodedwith computer-readable instructions, wherein the instructions when readand executed by the processor cause operations to be performedcomprising: detecting a re-calibration event; querying a display devicefor a set of color space characteristic values, the display devicehaving a screen to display content; receiving the set of color spacecharacteristic values from the display device; and building a profilefor the display device using the set of color space characteristicvalues, wherein the profile comprises a BtoA tag, the BtoA tag having amultidimensional table including values for the display device topreserve a color's hue for out-of-gamut mapping for displaying thecontent on the screen, the multidimensional table being different from amatrix and being substantially larger in file size than a matrix-basedformat for the set of color space characteristic values, themultidimensional table containing information on gamut mapping; andstoring the profile on the storage device.
 44. The electronic device ofclaim 43, wherein the electronic device is a personal computer.
 45. Theelectronic device of claim 43, wherein the electronic device is aset-top box.
 46. The electronic device of claim 43, wherein theelectronic device is a personal digital assistant (PDA).
 47. Theelectronic device of claim 43, wherein the electronic device is aportable audio player.
 48. The electronic device of claim 43, whereinthe electronic device is a cell phone.
 49. The electronic device ofclaim 43, further comprising a display device contained in a sameenclosure as the processor and storage device.
 50. The electronic deviceof claim 43, wherein the display device is enclosed separately from theprocessor and storage device.
 51. A system comprising: a colormanagement system to perform color transformations from adevice-independent color space to a device-dependent color space; and aprofile database for use by the color management system when performingcolor transformations, the profile database comprising one or morestored profiles having a multidimensional table encapsulating colorresponses for a display as described by color space characteristicvalues for the display, the display having a screen to display content,and having out-of-gamut mapping optimizations, at least one of the oneor more stored profiles automatically created by converting amatrix-based format of color space characteristic values for the displaydevice to the respective multidimensional table, the multidimensionaltable including values for the display to preserve a color's hue forout-of-gamut mapping for displaying the content on the screen, themultidimensional table being different from a matrix, themultidimensional table containing more information on gamut mapping thanthe matrix-based format.
 52. The system of claim 51, wherein the colorspace characteristic values comprises chromaticity coordinates and oneor more gamma values.
 53. The system of claim 51, the stored profilesconforms to the International Color Consortium (ICC) profilespecification.
 54. The system of claim 51, wherein the multi-dimensionaltable includes a BtoA tag as described by the ICC profile specification.55. A method of calibrating a display device, comprising: receiving aset of color space characteristic values that describe the color spaceof the display device, the display device having a screen to displaycontent, the set of color space characteristics being in matrix-basedformat; determining capabilities of a computing device connected to thedisplay device, the capabilities being different from colorcharacteristics of the display device; and automatically building aprofile specific to the determined capabilities using the set of colorspace characteristic values, the profile including a multidimensionaltable including values for the display device to preserve a color's huefor out-of-gamut mapping for displaying the content on the screen, themultidimensional table being different from the matrix-based format, themultidimensional table being different from a matrix.
 56. The method ofclaim 55, wherein the capabilities include CPU speed.
 57. The method ofclaim 55, wherein the capabilities include the presence of a video card.58. The method of claim 55, wherein the capabilities include thesuitability of a video card.
 59. The method of claim 55, wherein thecapabilities include the amount of memory on the computing device. 60.The method of claim 55, wherein building a profile includes building aprofile which contains both matrix-based data and multi-dimensionaltable data.